﻿namespace CandidateManager.ViewsParams
{
    /// <summary>
    /// The generic get params.
    /// </summary>
    public class GenericGetParams : GenericBaseParams
    {
        #region Constructors

        /// <summary>
        /// Initializes a new instance of the <see cref="GenericGetParams"/> class.
        /// </summary>
        /// <param name="propertiesToDisplay">
        /// The names of properties which must be displayed.
        /// </param>
        /// <param name="controllerName">
        /// The controller name.
        /// </param>
        /// <param name="enableCreate">
        /// Indicates whether create function is enabled.
        /// </param>
        /// <param name="enableEdit">
        /// Indicates whether edit function is enabled.
        /// </param>
        /// <param name="enableDelete">
        /// Indicates whether delete function is enabled.
        /// </param>
        /// <param name="createActionName">
        /// The create action name.
        /// </param>
        /// <param name="editActionName">
        /// The edit action name.
        /// </param>
        /// <param name="deleteActionName">
        /// The delete action name.
        /// </param>
        public GenericGetParams(
            string[] propertiesToDisplay,
            string controllerName,
            bool enableCreate,
            bool enableEdit,
            bool enableDelete,
            string createActionName,
            string editActionName,
            string deleteActionName)
        {
            PropertiesToDisplay = propertiesToDisplay;
            ControllerName = controllerName;
            EnableCreate = enableCreate;
            EnableEdit = enableEdit;
            EnableDelete = enableDelete;
            CreateActionName = createActionName;
            EditActionName = editActionName;
            DeleteActionName = deleteActionName;
        }

        /// <summary>
        /// Prevents a default instance of the <see cref="GenericGetParams"/> class from being created.
        /// </summary>
        private GenericGetParams()
        {
        }

        #endregion

        #region Properties

        /// <summary>
        /// Gets or sets a value indicating whether create function is enabled.
        /// </summary>
        public bool EnableCreate { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether edit function is enabled.
        /// </summary>
        public bool EnableEdit { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether delete function is enabled.
        /// </summary>
        public bool EnableDelete { get; set; }

        /// <summary>
        /// Gets or sets the create action name.
        /// </summary>
        public string CreateActionName { get; set; }

        /// <summary>
        /// Gets or sets the edit action name.
        /// </summary>
        public string EditActionName { get; set; }

        /// <summary>
        /// Gets or sets the delete action name.
        /// </summary>
        public string DeleteActionName { get; set; }

        #endregion
    }
}
